/**
 * vue3插件形式注册全局组件
 */
import Skeleton from './Skeleton/index.vue'
import Slider from './Slider/index.vue'
import More from './More/index.vue'

// 导入面包屑
import Bread from './Bread/index.vue'
// 导入面包屑子项
import BreadItem from './Bread/item.vue'
// 导入上拉加载
import InfiniteLoad from './InfiniteLoad/index.vue'
// 导入城市下拉组件
import XtxCity from './City/index.vue'
// 导入Sku组件
import GoodsSku from './Sku/index.vue'
// 导入 数量加减 组件
import Numbox from './Numbox/index.vue'
// 导入 Button按钮组件
import Button from './Button/index.vue'
// 导入缓存组件
import CheckBox from './CheckBox/index.vue'
// 导入消息提示框组件
import Message from './Message/index.vue'
// 导入 弹出层组件
import Dialog from './Dialog/index.vue'

/**
 * 优化:  怎么循环注册全局组件
 * 1.把组件放到数组中
 * 2.循环放组件的数组,全局注册
 *
 * 以后有新注册的全局复用组件,直接导入,放在数组中即可
 */
const cps = [Skeleton, Slider, More, Bread, BreadItem, InfiniteLoad, XtxCity, GoodsSku, Numbox, Button, CheckBox, Message, Dialog]
// console.log('组件数组:', cps)
export default {
  // vue2 第一个参数是Vue（构造函数）| vue3 拿到的是app实例
  install (app) {
    console.log(app)
    // 注册全局组件
    // app.component(Skeleton.name, Skeleton)
    // app.component(Slider.name, Slider)

    // 优化代码
    cps.forEach((cp) => {
      app.component(cp.name, cp)
    })
  }
}
